export default {
	// 开启命名空间
	namespaced:true,
	
	// 数据
	state: () => ({
		address:JSON.parse(uni.getStorageSync('address') || '{}'),
		token:uni.getStorageSync('token') || '',
		 userInfo: JSON.parse(uni.getStorageSync('userInfo') || '{}')
	}),
	// 方法
	mutations:{
		// 更新地址
		updateAddress(state,address){
			state.address = address
			// 调用持久化存储addfress方法
			this.commit('m_user/saveAddressToStorage')
		},
		  updateUserInfo(state, userInfo) {
		    state.userInfo = userInfo
		    // 通过 this.commit() 方法，调用 m_user 模块下的 saveUserInfoToStorage 方法，将 userinfo 对象持久化存储到本地
		    this.commit('m_user/saveUserInfoToStorage')
		  },
		   // 更新 token 字符串
		    updateToken(state, token) {
		      state.token = token
		      // 通过 this.commit() 方法，调用 m_user 模块下的 saveTokenToStorage 方法，将 token 字符串持久化存储到本地
		      this.commit('m_user/saveTokenToStorage')
		    },
		// 定义持久化存储address的方法
		saveAddressToStorage(state){
			uni.setStorageSync('address',JSON.stringify(state.address))
		},
		// 定义持久化存储userInfo的方法
		saveUserInfoToStorage(state) {
		    uni.setStorageSync('userInfo', JSON.stringify(state.userInfo))
		  },
		  // 定义持久化存储token的方法
		  saveTokenToStorage(state){
			uni.setStorageSync('token', state.token)
		  }
	},
	// 数据包装器
	getters:{
		addstr(state) {
		  if (!state.address.provinceName) return ''
				
		  // 拼接 省，市，区，详细地址 的字符串并返回给用户
		  return state.address.provinceName + state.address.cityName + state.address.countyName + state.address.detailInfo
		}
	}
}